-- @Author: baidwwy
-- @Date:   2018-04-10 22:51:52
-- @Last Modified by:   baidwwy
-- @Last Modified time: 2018-08-19 21:07:55
--=========================================================================
local super = require("丰富文本类")
local GUI丰富文本 = class(require "gge界面/基类",super)
--=========================================================================
function GUI丰富文本:初始化(标记,x,y,宽度,高度)
    self._包围盒:置中心(-self._px,-self._py)
    self._包围盒:置坐标(self._fx,self._fy)
    self._类型 = '富文本'
end
--function GUI丰富文本:更新()end--覆盖
--function GUI丰富文本:显示()end--覆盖
--function GUI丰富文本:_更新(dt,x,y)end

function GUI丰富文本:置宽高(w,h)
    self[super]:置宽高(w,h)
    return self
end
function GUI丰富文本:置高度(v)
    self[super]:置高度(v)
    return self
end
function GUI丰富文本:置宽度(v)
    self[super]:置宽度(v)
    return self
end
function GUI丰富文本:_显示(x,y)
    if self:是否可视() then
        if self._编辑 and self:_编辑显示(x,y) then
            return
        end
        if self.底显示 then self:底显示(self._x,self._y,x,y)end
        self[super]:显示(self._x,self._y)
        if rawget(self,'显示') then self:显示(self._x,self._y,x,y)  end
        if self._调试 then self._包围盒:显示() end
    end
end
function GUI丰富文本:关联事件(_,a,b,c)
    if a == '位置改变' then
        local 范围 = self:取滚动范围()
        if 范围>0 then
            self:滚动到(math.floor((范围*(100-b)/100)))
        else
            self:发送关联消息('复位')
        end
    end
end
function GUI丰富文本:_消息事件(消息,参数)
    local x,y = unpack(参数)
    if 消息 == '坐标事件' then
        self._x,self._y = x+self._px,y+self._py
        self._包围盒:置坐标(x,y)
    elseif 消息 == '鼠标移动' then
        self[super]:更新(x,y)
    elseif 消息 == '回调碰撞' then
        self._回调标识 = (x=='' or not x) and y or x
        self:发送消息("回调碰撞",self._回调标识,y)
    elseif 消息 == '左键按下'  and x and y then
        self.左键按下 = self:检查按钮(x,y)
        return self.左键按下 and true
    elseif 消息 == '左键弹起' and self.左键按下 then
        if self:检查按钮(x,y)==self.左键按下 then
            self:发送消息("回调弹起",self.左键按下)
        end
        self.左键按下 = nil
    end
end

return GUI丰富文本